package dominio;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import persistencia.PersistentObject;
import dto.ItemCotizacionTO;

@Entity
@Table(name = "ItemCotizacion")
public class ItemCotizacion extends PersistentObject {
	private static final long serialVersionUID = 1L;

	@OneToOne
	@JoinColumn(name = "idRodamiento")
	private Rodamiento rodamiento;

	@OneToOne
	@JoinColumn(name = "idProveedor")
	private Proveedor proveedor;

	@Column(name = "precio", nullable = false, columnDefinition = "money")
	private float precio;

	@Column(name = "cantidad", nullable = false, columnDefinition = "int")
	private int cantidad;

	public Rodamiento getRodamiento() {
		return rodamiento;
	}

	public void setRodamiento(Rodamiento rodamiento) {
		this.rodamiento = rodamiento;
	}

	public Proveedor getProveedor() {
		return proveedor;
	}

	public void setProveedor(Proveedor proveedor) {
		this.proveedor = proveedor;
	}

	public float getPrecio() {
		return precio;
	}

	public void setPrecio(float precio) {
		this.precio = precio;
	}

	public int getCantidad() {
		return cantidad;
	}

	public void setCantidad(int cantidad) {
		this.cantidad = cantidad;
	}

	public ItemCotizacionTO getDTO() {
		ItemCotizacionTO dto = new ItemCotizacionTO();
		dto.setId(id);
		if (rodamiento != null)
			dto.setRodamiento(rodamiento.getDTO());
		if (proveedor != null)
			dto.setProveedor(proveedor.getDTO());
		dto.setPrecio(precio);
		dto.setCantidad(cantidad);
		return dto;
	}

	public static ItemCotizacion fromDTO(ItemCotizacionTO dto) {
		if (dto == null)
			return null;
		ItemCotizacion i = new ItemCotizacion();
		i.setId(dto.getId());
		i.setRodamiento(Rodamiento.fromDTO(dto.getRodamiento()));
		i.setProveedor(Proveedor.fromDTO(dto.getProveedor()));
		i.setPrecio(dto.getPrecio());
		i.setCantidad(dto.getCantidad());
		return i;
	}
}